//1. 引入路由
import Vue from "vue";
import VueRouter from "vue-router";

/* 
  当打包构建应用时，js包会变得非常大，影响页面加载，影响页面加载，如果我们能把不同路由对应的组件分割成不同的代码块，然后当路由被访问的时候才加载对应组件，这样就更加高效了
  结合 Vue 的异步组件 (opens new window)和 webpack 的代码分割功能 (opens new window)，轻松实现路由组件的懒加载
*/

const Home = () => import('../views/Home')
const Login = () => import('../views/Login')
const News = () => import('../views/Home/components/News')
const Music = () => import('../views/Home/components/Music')
const Game = () => import('../views/Home/components/Game')

//2. 把路由作为插件使用
Vue.use(VueRouter);

//3. 实例化路由得到路由对象
export default new VueRouter({
    //设置路由模式为history模式!!!!
    mode: "history",
    //使用routes配置项配置路由表
    routes: [
        {
            path: "/home",
            component: Home,
            //如果当前的路由设置有默认子路由,则不建议书写name命名路由
            // name: "Home",
            //默认子路由配置方式2
            redirect: "/home/news",
            children: [
                {
                    //二级路由及多级路由的path两种写法:1.完整的路径  2.只写当前二级路由的字符串地址,不带/
                    path: "news",
                    component: News,
                    name: "News",
                },
                {
                    path: "music",
                    component: Music,
                    name: "Music",
                },
                {
                    path: "game",
                    component: Game,
                    name: "Game",
                },
                //默认子路由配置方式1
                /*  {
                  path: "",
                  redirect: "/home/news",
                }, */
            ],
        },
        {
            path: "/login",
            component: Login,
            name: "Login",
        },
        //匹配默认路由
        {
            path: "/",
            //重定向的配置
            redirect: "/home",
        },
    ],
});
